#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
long long ans;
int T,n,m,a[maxn],c[maxn],x[maxn],nu[maxn];
int d[120][120];
string st;
int main(){
    freopen("arena1.in","r",stdin);
    freopen("arena.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=m;i++) cin>>c[i];
    int N=1,R=0;
    while(N<n){
        N*=2;
        R++;
    }
    for(int i=1;i<=R;i++){
        cin>>st[i];
        for(int j=1;j<=sizeof(st[i]);j++)
            d[i][j]=st[j-1]-'0';
    }
    cin>>T;
    for(int j=1;j<=T;j++){
        for(int i=1;i<=4;i++){
            cin>>x[i];
        }
        for(int i=1;i<=n;i++){
            a[i]=a[i]^x[i%4];
        }
        for(int i=1;i<=m;i++){
            int N=1;nu[i]=0;
            while(N<n){
                N*=2;
                nu[i]++;
            }
        }
        ans=0;
        for(int i=1;i<=m;i++){
            ans^=i*(1+nu[i])*nu[i]/2;
        }
        cout<<ans<<endl;
    }
    return 0;
}
